(define number-class
  '(or #\0 #\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9))
(define hex-class
  '(or #\0 #\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9
       #\A #\B #\C #\D #\E #\F))

(define alpha-class
  '(or #\a #\b #\c #\d #\e #\f #\g #\h #\i #\j #\k #\l #\m #\n #\o #\p #\q #\r #\s #\t #\u #\v #\w #\x #\y #\z
       #\A #\B #\C #\D #\E #\F #\G #\H #\I #\J #\K #\L #\M #\N #\O #\P #\Q #\R #\S #\T #\U #\V #\W #\X #\Y #\Z))

(define reserved-symbol-class
  '(or #\' #\, #\. #\; #\` #\# #\" #\( #\)))

(define symbol-class
  '(or #\! #\$ #\% #\& #\* #\+ #\- #\/ #\: #\< #\= #\> #\? #\@ #\[ #\\ #\] #\^ #\_ #\{ #\} #\~))

(define whitespace-class
  '(or #\space #\newline))

(define alphabet
  '(#\0 #\1 #\2 #\3 #\4 #\5 #\6 #\7 #\8 #\9
    #\a #\b #\c #\d #\e #\f #\g #\h #\i #\j #\k #\l #\m #\n #\o #\p #\q #\r #\s #\t #\u #\v #\w #\x #\y #\z
    #\A #\B #\C #\D #\E #\F #\G #\H #\I #\J #\K #\L #\M #\N #\O #\P #\Q #\R #\S #\T #\U #\V #\W #\X #\Y #\Z
    #\' #\, #\. #\; #\` #\# #\" #\( #\)
    #\! #\$ #\% #\& #\* #\+ #\- #\/ #\: #\< #\= #\> #\? #\@ #\[ #\\ #\] #\^ #\_ #\{ #\} #\~
    #\space #\newline))
